package domain

import (
	"github.com/lab-online/internal/course/entity"
)

type Domain struct {
	repository CourseRepository
}

type CourseDomain interface {
	RemoveCourse(entity.CourseEntity) error
	UpdateCourse(entity.CourseEntity) error
	SearchCourse(entity.CourseEntity) ([]entity.CourseEntity, error)
	GetCourseDetail(entity.CourseEntity) (entity.CourseEntity, error)

	RemoveExperiment(entity.ExperimentEntity) error
	UpdateExperiment(entity.ExperimentEntity) error
	SearchExperiment(entity.ExperimentEntity) ([]entity.ExperimentEntity, error)
}

func New(repository CourseRepository) CourseDomain {
	return &Domain{repository: repository}
}
